// 显示提示信息
// function showAlert(message, type = 'success', containerSelector = '.main-content') {
//     const alert = document.createElement('div');
//     alert.className = `alert alert-${type} position-absolute translate-middle-x`;
//     alert.setAttribute('role', 'alert');
//     alert.style.top = '25px';
//     alert.style.zIndex = '1050'; // 确保悬浮在最上层
//     alert.innerHTML = `
//         ${message}
//         <button type="button" class="btn-close" data-bs-dismiss="alert" style="transform: scale(0.3);
//                        position: absolute;
//                        top: 0;
//                        right: 0;"></button>
//     `;
//
//     const targetContainer = document.querySelector(containerSelector) ||
//                                     document.querySelector('.col-md-9');
//     if (!targetContainer) {
//       console.error(`容器 ${containerSelector} 和备用容器 .admin-page 均未找到`);
//       return;
//     }
//     targetContainer.prepend(alert);
//     // 5s后自动关闭
//     setTimeout(() => alert.remove(), 5000);
// }
//

// Token刷新逻辑
// let isRefreshing = false; // 全局标记刷新状态

// async function refreshToken() {
//      if (isRefreshing) {
//         return false; // 防止并发刷新
//     }
//     isRefreshing = true;
//     try {
//         const response = await axios.post('/acc/auth/refresh/', {}, {
//             // refresh: localStorage.getItem('refresh')
//              _noAuth: true // 自定义标记跳过认证
//         });
//
//         localStorage.setItem('access', response.data.access);
//         return true;
//     } catch (error) {
//         // 清除旧Token并跳转登录
//         await logout();
//         // localStorage.clear();
//         // window.location.href = '/account/login.html';
//         return false;
//     }finally {
//         isRefreshing = false;
//     }
// }

// 请求拦截器：跳过带_noAuth标记的请求的Token注入
// axios.interceptors.request.use(config => {
//     if (!config._noAuth) {
//         config.headers.Authorization = `Bearer ${getToken()}`;  // 带上Token
//     }
//     return config;
// });

// 响应拦截器
// const MAX_RETRY = 1; // 最多重试1次
// axios.interceptors.response.use(
//     // null,  // 成功响应不处理
//     async response => {
//         const data = response.data;
//         console.log('response:', data)
//     },
//
//     async error => {  // 错误处理逻辑
//     const originalRequest = error.config;
//     if (error.response.status === 401 && !originalRequest._retry && originalRequest._retryCount < MAX_RETRY) {
//         originalRequest._retry = true;  // 设置重试标记
//         originalRequest._retryCount = (originalRequest._retryCount || 0) + 1;
//         if (await refreshToken()) {
//             return axios(error.config);  // 重发原始请求
//         }
//         // Case 1: 刷新Token请求自身失败 → 直接退出
//         if (originalRequest._noAuth) {
//             await logout();
//             return Promise.reject(error);
//         }
//         // Case 2: 尝试刷新
//         if (await refreshToken()) {
//             // 更新请求头后重试
//             originalRequest.headers.Authorization = `Bearer ${getToken()}`;
//             return axios(originalRequest);
//         }
//     }
//
//     return Promise.reject(error); // 其他错误直接抛出
// });
//
//
// async function logout(out=0) {
//   const csrftoken = document.cookie.match(/csrftoken=([\w-]+)/)?.[1];
//   // 调用后端注销接口
//   try {
//     await axios.post('/logout/', null, {
//       headers: { Authorization: `Bearer ${getToken()}`,
//                 'X-CSRFToken': csrftoken,  // 关键：添加 CSRF Token 到请求头
//       },
//     });
//   } catch (e) {
//     console.error('注销服务端会话失败:', e);
//   }
//   // 执行本地清理
//   localStorage.clear();
//   if (out === 1){window.location.href = '/acc/auth/login/';}  // 只有从其他页面permission.html来的,才再登录
// }
//
//
// function getToken() {
//   return localStorage.getItem('access');
// }